import { DownExcel, exportExcel } from '@/vendor/ExportExcel'
import XLSX from 'xlsx'

export default {
  data() {
    return {
      excelData: [],
      //导出输出表头设置
      headers: {
        name: '名称',
        sex: '性别',
        age: '年龄',
        address: '地址',
      },
      config: {
        size: {
          // 列宽
          cols: [{ wch: 30 }, { wch: 30 }, { wch: 30 }, { wch: 30 }],
          // 行高
          rows: [
            { hpx: 30 },
            { hpx: 20 },
            { hpx: 20 },
            { hpx: 20 },
            { hpx: 20 },
          ],
        },
        myStyle: {
          all: {
            font: { name: '宋体', sz: 11, color: { auto: 1 } },
            border: {
              top: {
                style: 'thin',
                color: {
                  auto: 1,
                },
              },
              left: {
                style: 'thin',
                color: {
                  auto: 1,
                },
              },
              right: {
                style: 'thin',
                color: {
                  auto: 1,
                },
              },
              bottom: {
                style: 'thin',
                color: {
                  auto: 1,
                },
              },
            },
            alignment: {
              /// 自动换行
              wrapText: 1,
              // 居中
              horizontal: 'center',
              vertical: 'center',
              indent: 0,
            },
          },
          mergeBorder: [],
        },
      },
    }
  },
  methods: {
    // 设置导出文件的数据格式
    setTabData() {
      let newList = new Array()
      let list = [...this.tableData]
      list.map((item) => {
        newList.push({
          name: item.name,
          sex: item.sex,
          age: item.age,
          address: item.address,
        })
      })
      // 将表头放入数据源前面
      newList.unshift(this.headers)
      return newList
    },
    //表头对应字段设置
    setHeader() {
      let list = []
      Object.keys(this.headers).forEach((key) => {
        list.push(key)
      })
      return list
    },
    exportExcel() {
      let worksheet = XLSX.utils.json_to_sheet(this.setTabData(), {
        header: this.setHeader(),
        //可自定义表头顺序
        skipHeader: true, // 是否忽略表头,默认为false
        // origin: 2, //表头起始行，默认从'A1'开始，也就是Excel左上角第一个表格
      })
      let ws = exportExcel(worksheet, this.config)
      // console.log('🚀 ~ file: exportExcel.js ~ line 372 ~ exportExcel ~ ws', ws)
      DownExcel(ws, '基础表格')
    },
  },
}
